package com.zjsru.plan2024.week;

/**
 * 输入单词需要的最少按键次数 I
 * @Author: cookLee
 * @Date: 2024-03-03
 */
public class MinimumPushes {

    /**
     * 主
     * \
     * 输入：word = "abcde"
     * 输出：5
     * 解释：图片中给出的重新映射方案的输入成本最小。
     * "a" -> 在按键 2 上按一次
     * "b" -> 在按键 3 上按一次
     * "c" -> 在按键 4 上按一次
     * "d" -> 在按键 5 上按一次
     * "e" -> 在按键 6 上按一次
     * 总成本为 1 + 1 + 1 + 1 + 1 = 5 。
     * 可以证明不存在其他成本更低的映射方案。
     * \
     * @param args args
     */
    public static void main(String[] args) {
        MinimumPushes minimumPushes = new MinimumPushes();
        String word = "xycdefghij";
        System.out.println(minimumPushes.minimumPushes(word));
    }

    /**
     * 最小推力
     *  按键映射的数量可以自由对应且不同 小写英文字母
     * @param word 字
     * @return int
     */
    public int minimumPushes(String word) {
        int ans = 0;
        int len = word.length();
        //用贪心来自定义，优先满足一次按键的情况
        for (int i = 0; i < len; i++) {
            ans += (i / 8) + 1;
        }
        return ans;
    }

}
